package com.settlement.system.model.entity.common;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.settlement.system.converter.BigNumberTabFormatConvert;
import com.settlement.system.converter.DateFormatConvert;
import com.settlement.system.converter.DateTimeFormatConvert;
import com.settlement.system.converter.WpDeliveryTypeConvert;
import com.settlement.system.converter.wp.SysInitialJudgeInComingConvert;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
 * WP-来货差异
 * @author xiaochuan
 * @since 2022-07-30
 */
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9,fillForegroundColor = 9)
@HeadRowHeight(value = 20)
@HeadFontStyle(fontHeightInPoints = 14)
public class TblWpIncomingGoodsDiff extends BaseModel implements Serializable {


    /**
     * 供应商编码
     */
    @ColumnWidth(15)
    @ExcelProperty(value = "供应商编码")
    private String vendorCode;

    /**
     * 供应商名称
     */
    @ColumnWidth(30)
    @ExcelProperty(value = "供应商名称")
    private String vendorName;

    /**
     * 发货模式。(0不区分;1仓JITX;2仓JIT;3门店JITX;)
     */
    @ColumnWidth(15)
    @ExcelProperty(value = "发货模式",converter = WpDeliveryTypeConvert.class)
    private Integer deliveryType;

    /**
     * 发货仓库/店铺
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "发货仓库/店铺")
    private String sendStoreOrShopName;

    /**
     * 快递单号
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "快递单号")
    private String expressNo;

    /**
     * 档期
     */
    @ColumnWidth(18)
    @ExcelProperty(value = "档期")
    private String orderSchedule;

    /**
     * 送货单号
     */
    @ColumnWidth(18)
    @ExcelProperty(value = "送货单号")
    private String sendNo;

    /**
     * PO单号
     */
    @ColumnWidth(15)
    @ExcelProperty(value = "PO单号")
    private String poNo;

    /**
     * 商品条码
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "商品条码",converter = BigNumberTabFormatConvert.class)
    private String barCode;

    /**
     * 发货日期
     */
    @ColumnWidth(15)
    @ExcelProperty(value = "发货日期",converter = DateFormatConvert.class)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date sendOutDate;

    /**
     * 品牌部名称
     */
    @ColumnWidth(18)
    @ExcelProperty(value = "品牌部名称")
    private String brandUnitName;

    /**
     * 唯品单价
     */
    @ColumnWidth(12)
    @ExcelProperty(value = "唯品单价")
    private BigDecimal wpUnitPrice;

    /**
     * 发货数量
     */
    @ColumnWidth(12)
    @ExcelProperty(value = "发货数量")
    private Integer sendQty;

    /**
     * 唯品收货数量
     */
    @ColumnWidth(18)
    @ExcelProperty(value = "唯品收货数量")
    private Integer wpReceiveQty;

    /**
     * 发货金额
     */
    @ColumnWidth(12)
    @ExcelProperty(value = "发货金额")
    private BigDecimal sendAmount;

    /**
     * 一退数量
     */
    @ColumnWidth(12)
    @ExcelProperty(value = "一退数量")
    private Integer firstReturnQty;

    /**
     * 丢件数量
     */
    @ColumnWidth(12)
    @ExcelProperty(value = "丢件数量")
    private Integer lostQty;

    /**
     * 调整数量
     */
    @ColumnWidth(12)
    @ExcelProperty(value = "调整数量")
    private Integer adjustQty;

    /**
     * 调整金额
     */
    @ColumnWidth(12)
    @ExcelProperty(value = "调整金额")
    private BigDecimal adjustAmount;

    /**
     * 未结算来货差异数量
     */
    @ColumnWidth(26)
    @ExcelProperty(value = "未结算来货差异数量")
    private Integer unSettledBackDiffQty;

    /**
     * 未结算来货差异金额
     */
    @ColumnWidth(26)
    @ExcelProperty(value = "未结算来货差异金额")
    private BigDecimal unSettledBackDiffAmount;

    /**
     * 系统初判。(1,无需核查-送货单差异为0;2,无需核查-送货单差异小于0;3,无需核查-已揽收;4,无需核查-已拒收质检;5,待核查-送货单差异大于0;6,待核查-未揽收;)
     */
    @ColumnWidth(25)
    @ExcelProperty(value = "系统初判",converter = SysInitialJudgeInComingConvert.class)
    private String sysInitialJudge;

    /**
     * 差异类型。(1,JIT来货差异;2,JITX强制揽收;)
     */
    @ColumnWidth(18)
    @ExcelProperty(value = "差异类型")
    private String diffType;

    /**
     * 跟进部门
     */
    @ColumnWidth(18)
    @ExcelProperty(value = "跟进部门")
    private String followUpDept;

    /**
     * 核查结果
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "核查结果")
    private String checkResult;

    /**
     * 百丽核查结果说明
     */
    @ColumnWidth(25)
    @ExcelProperty(value = "百丽核查结果说明")
    private String blCheckDescript;

    /**
     * 唯品核查结果说明
     */
    @ColumnWidth(25)
    @ExcelProperty(value = "唯品核查结果说明")
    private String wpCheckDescript;

    /**
     * 责任方
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "责任方")
    private String responsibleParty;

    /**
     * 损失原因
     */
    @ColumnWidth(20)
    @ExcelProperty(value = "损失原因")
    private String lossReason;

    /**
     * 核查时间
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "核查时间",converter = DateTimeFormatConvert.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    public Date createTime;

    /**
     * 核查人
     */
    @ColumnWidth(15)
    @ExcelProperty(value = "核查人")
    public String createUser;

    int total;
}
